home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / compress / zzap66a.zip / ZZAP.DOC < prev    next >
Text File  |  1992-10-23  |  90KB  |  2,910 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.                    █████████   █████████      ███      ███████   
  25.                     ░░░░░██░░   ░░░░░██░░    ██░██░    ██░░░░██░ 
  26.                         ██░░        ██░░    ██░  ██░   ██░    ██░
  27.                        ██░░        ██░░    ██░    ██░  ██░   ██░░
  28.                       ██░░        ██░░     █████████░  ███████░░ 
  29.                      ██░░        ██░░      ██░░░░░██░  ██░░░░░░  
  30.                     ██░░        ██░░       ██░    ██░  ██░       
  31.                    █████████   █████████   ██░    ██░  ██░       
  32.                     ░░░░░░░░░   ░░░░░░░░░   ░░     ░░   ░░       
  33.  
  34.                                      Version 6.6
  35.  
  36.  
  37.                               ZIP/ZOO/ARC/PAK Converter
  38.                                      (And More!)
  39.  
  40.                                 Copyright (c) 1989,91
  41.                                Ross Neilson Wentworth
  42.                                  All Rights Reserved
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.                                      Chapter One
  53.  
  54.                                   License Agreement
  55.  
  56.  
  57.           In the past I have not requested money to use ZZAP unless it was
  58.           used in a commercial environment.  However, due to its increased
  59.           popularity with the resultant increase in phone calls with
  60.           questions, I am forced to change my licensing policy.  This new
  61.           policy supersedes all previous agreements for the licensing of
  62.           ZZAP.
  63.  
  64.           You may use ZZAP on a trial basis for up to 30 days freely.  You
  65.           may give it away to anyone you wish so long as you do not charge
  66.           for it or use it as an incentive to buy.  If, after the 30 day
  67.           trial period, you wish to continue to use ZZAP, a registration
  68.           fee is required (see the file ORDER.FRM for details).
  69.  
  70.           Payment should be by check or money in U.S. funds drawn on a U.S.
  71.           bank.  I can not be responsible for cash that is sent through the
  72.           mail.  Printing the file "ORDER.FRM" will produce an order form
  73.           that you can use to register ZZAP.  Send your registration and/or
  74.           inquiry to:
  75.  
  76.                          Ross Neilson Wentworth
  77.                          1422 Elkgrove Circle, #3
  78.                          Venice, CA  90291
  79.                          (310)399-1244
  80.  
  81.  
  82.           The latest version of ZZAP can be found on West Los Angeles BBS,
  83.           (310)838-9229.
  84.  
  85.           Even if you do not wish to register I would appreciate hearing
  86.           from you.  A simple postcard listing your likes, dislikes,
  87.           suggestions, and the version number is all that I ask.
  88.  
  89.           The terms "arc", "archive", "unarc", etc. are used throughout
  90.           this document.  They are considered generic terms for all
  91.           archiving types and formats.  Any declaration that any of these
  92.           terms are proprietary will be construed as a ridiculous statement
  93.           and be properly ignored.
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.                                      Chapter Two
  104.  
  105.                                  Summary of Features
  106.  
  107.  
  108.               o  Automated conversion between the most common archive types
  109.                  (ARC, ARJ, DWC, ICE, LBR, LZH, MD, PAK, SDN, SQZ, ZIP, and
  110.                  ZOO), including self-extracting archives.
  111.               o  Automatically converts nested archives including nested
  112.                  archives of different types.  A switch is provided to
  113.                  disable this feature.
  114.               o  Optionally convert archives in multiple subdirectories
  115.                  (subdirectory recursion).
  116.               o  Accepts wild-card designations and multiple file names on
  117.                  the command line.
  118.               o  Repack archives to same type.
  119.               o  Renames or moves corrupted archive for later examination.
  120.               o  User defined arcing and unarcing options.
  121.               o  Deletes old archives by default, options to keep them.
  122.               o  Optional logging of ZZAP activities to a text file.
  123.               o  Optionally create a text file listing the archives
  124.                  converted, suitable for use by filter programs to update
  125.                  the file list as used by BBS programs.
  126.               o  Flag archives containing files with Hidden, System, or
  127.                  ReadOnly attributes as "bad" or optionally strip the funny
  128.                  attributes.
  129.               o  Can automatically check an archive for viruses using the
  130.                  virus scanning program SCAN.EXE (version 39 or later) from
  131.                  McAfee Associates.
  132.               o  Optional 32-bit CRC testing of program files adds an
  133.                  additional layer of protection from viruses, trojans, and
  134.                  the like.
  135.               o  The standard input of programs that are executed can be
  136.                  redirected from a file to allow the automatic addition of
  137.                  an archive comment (currently this only works with ZIP
  138.                  files, I think).
  139.               o  Can take advantage of expanded memory (LIM 4.0 driver
  140.                  required) or extended memory (XMS driver required) to
  141.                  reduce the memory overhead while executing the archiving
  142.                  programs.
  143.               o  Processing can be skipped on archives that are more than a
  144.                  configurable number of days old.
  145.               o  External programs can be defined to be executed before
  146.                  and/or after each archive is processed.
  147.               o  Configurable for additional archiving programs.
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.           Page 2                               Chapter 2. License Agreement
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.                                     Chapter Three
  168.  
  169.                                     Running ZZAP
  170.  
  171.  
  172.           The basic syntax of ZZAP is:
  173.  
  174.                     ZZAP [switches] filespec [filespec ...]
  175.  
  176.           Where [options] is any of the optional command line switches and
  177.           filespec is a file name, wildcard specification, or the name of a
  178.           file indicating a list of files.  A "list" file is signified by
  179.           preceding the file name with the '@' character, for example:
  180.  
  181.                     ZZAP @newfiles.lst
  182.  
  183.           You can mix filespecs on the command line, giving a combination
  184.           of specific file names, wildcards, and list files; limited only
  185.           by the length of the command line (80 characters):
  186.  
  187.                     ZZAP AFILE.ZOO *.LZH @UPLOADS.LST
  188.  
  189.           To halt ZZAP press the ESCape key.  Conversion of the current
  190.           archive will be completed and ZZAP will halt.
  191.  
  192.           Every attempt has been made to supply a universally acceptable
  193.           configuration file (ZZAP.CFG).  Everybody, of course, has
  194.           personal preferences so you may wish to modify it for your
  195.           special needs.  Consult the chapter on the configuration file for
  196.           information on customizing ZZAP operations.
  197.  
  198.           If you wish to log the activity of ZZAP you need to specify the
  199.           full path and file name of the log file.  See the chapter Logging
  200.           ZZAP Activity for details.
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.           Chapter 3. Summary of Features                             Page 3
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.                                     Chapter Four
  232.  
  233.                              Archive Programs Supported
  234.  
  235.  
  236.           Currently, there are a multitude of mostly incompatible archiving
  237.           utilities available.  While a standard would be beneficial to the
  238.           BBS community, it's not likely to occur in the near future.
  239.  
  240.           To help cope with the different formats and to make conversion
  241.           from one to another easy I wrote ZZAP.  It allows conversion from
  242.           one format to another, quickly and painlessly.  ZZAP doesn't
  243.           actually do any conversion on its own.  Rather, it acts as a
  244.           shell around the archivers - automating the process.
  245.  
  246.           The archive programs and version numbers tested under are:
  247.  
  248.                ARJ 2.00
  249.                DWC A4.95
  250.                ICE 1.14
  251.                LHARC 1.13
  252.                LUE 2.20 (extraction only)
  253.                MD (unknown version number - tested by user)
  254.                PAK 2.0
  255.                PKPAK/PKUNPAK 3.61 (a.k.a. PKARC/PKXARC)
  256.                PKZIP/PKUNZIP 1.10
  257.                SQZ 1.08.2
  258.                ZOO 2.01
  259.  
  260.           Other formats should work if properly configured but there is no
  261.           guarantee.  If you run across an archiving program that does not
  262.           work under ZZAP I would like to hear about it so I can make the
  263.           necessary modifications.
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.           Page 4                                    Chapter 4. Running ZZAP
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.                                     Chapter Five
  296.  
  297.                                  Configuration File
  298.  
  299.  
  300.           ZZAP relies on a configuration file (ZZAP.CFG) to know how to arc
  301.           and unarc.  There are a number commands allowed in the
  302.           configuration file, three of them are required (ARC=, UNARC=, and
  303.           DEFAULT=) and the rest are optional.  The order of the commands
  304.           are unimportant.
  305.  
  306.           Each command is on its own line.  Placing multiple commands on a
  307.           single line will result in improper operation.  A configuration
  308.           file is included with this package that may be used as-is or may
  309.           be modified for your personal preferences.
  310.  
  311.  
  312.           5.1  ARC=
  313.  
  314.  
  315.           ARC= defines the command used to archive.  This command can
  316.           appear as many times as required to define all of the various
  317.           archive types you may use.  The syntax for this command is:
  318.  
  319.                     ARC=EXT PROGNAME OPTIONS
  320.  
  321.           EXT represents the filename extension used by this particular
  322.           archiver, PKZIP, for example, uses ZIP.  Do NOT include a leading
  323.           period.
  324.  
  325.           PROGNAME is the name of the actual archiving program.  If the
  326.           filename extension is not given the a search will be made for
  327.           both COM and EXE.  Including the extension will improve the
  328.           performance of ZZAP.
  329.  
  330.           OPTIONS is the command line options used to create an archive.
  331.           ZOO, for example, uses "-ADD" while PKPAK uses "-A".  Since some
  332.           archiving programs use both upper and lower case letters to
  333.           represent different actions, this item's case is left intact.
  334.           OPTIONS also may include the "%1" to indicate where the archive
  335.           files name should be placed on the command line.  In previous
  336.           version the archive name was appended to the end of the command
  337.           line if the %1 was omitted.  This is no longer true, now you MUST
  338.           specify the %1 if you wish the archive name on the command line.
  339.  
  340.           If you wish to redirect the standard input or output of the
  341.           archiving program then put the redirection command at the end of
  342.           OPTIONS.  ZZAP allows three types of redirection: > redirects the
  343.           output, < redirects the input, and >> appends redirection to the
  344.           indicated file.
  345.  
  346.  
  347.  
  348.  
  349.           Chapter 5. Archive Programs Supported                      Page 5
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.           The following are all legal ARC= commands:
  357.  
  358.                          ARC=ARC PKPAK -A %1 *.*
  359.                          ARC=DWC DWC.EXE AZ %1 *.*
  360.                          ARC=PAK PAK A %1 *.*
  361.                          ARC=LZH LHARC.EXE a %1 *.*
  362.                          ARC=ZIP PKZIP -A -EX
  363.                          ARC=ZOO ZOO.EXE -ADD %1 * >NUL
  364.                          ARC=ZIP PKZIP.EXE -a -z %1 *.* >NUL <HEADER.ANS
  365.  
  366.           The last two examples have their display output redirected to the
  367.           NUL device, resulting in the normal output to not be displayed.
  368.           The last example has its standard input redirected from the file
  369.           "HEADER.ANS".  THE -z option of PKZIP is the add archive comment
  370.           command.  The contents of the file will be used as the archive
  371.           comment.
  372.  
  373.           Note that if there is an error when attempting to open a file for
  374.           redirection a second attempt will be made to redirect using the
  375.           NUL device.  This is so that PKZIP (and possibly other programs)
  376.           won't sit and wait for input from the keyboard.
  377.  
  378.           See also COMSPEC.
  379.  
  380.  
  381.           5.2  UNARC=
  382.  
  383.  
  384.           The next command is UNARC=.  This is the commands to unarc the
  385.           various types of archives.  This command can appear as many times
  386.           as necessary to define all the archive types you may use.  The
  387.           syntax for this command is:
  388.  
  389.                          UNARC=EXT PROGNAME OPTIONS
  390.  
  391.           EXT is the extension used by this type of archive.
  392.  
  393.           PROGNAME is the name of the program used to extract files in the
  394.           archive.
  395.  
  396.           OPTIONS is the command line options used to extract files from
  397.           the archive.  As with the ARC command, "%1" may also be included
  398.           to indicate the position of the archive file name.
  399.  
  400.           If you wish the display output of the  unarcing program to be
  401.           redirected you should list the redirection command last.
  402.  
  403.           For unarcing to work with ZZAP it MUST extract all files in an
  404.           archive if a filename is not given after the archive name.
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.           Page 6                              Chapter 5. Configuration File
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.           The following are all legal UNARC commands:
  421.  
  422.                          UNARC=ARC PKXARC.EXE
  423.                          UNARC=DWC DWC E %1 *.*
  424.                          UNARC=LZH LHARC.EXE e
  425.                          UNARC=PAK PAK E %1 *.*
  426.                          UNARC=ZIP PKUNZIP.EXE %1 >NUL
  427.                          UNARC=ZOO ZOO -EXTRACT %1 >NUL
  428.  
  429.           The last two examples have their display output redirected to the
  430.           NUL device.
  431.  
  432.           Subdirectories
  433.           It is recommended that you turn on creation of subdirectories if
  434.           the archive format supports storing subdirectories along with
  435.           file names.  This is to allow ZZAP to detect the subdirectories
  436.           and treat the archive as BAD.  If the unarc program allows all
  437.           files to be placed in a single subdirectory a file name conflict
  438.           can arise, resulting in the unarc program stopping and waiting
  439.           for keyboard input to verify a file overwrite.  This could
  440.           potentially stop your computer dead, leaving the BBS system off-
  441.           line until manually continued.
  442.  
  443.           The unarc program MUST allow the subdirectories created to be
  444.           children of the temporary subdirectory.
  445.  
  446.                          UNARC=ZIP PKUNZIP.EXE -d %1 >NUL
  447.  
  448.           This example causes PKUNZIP to create subdirectories if the
  449.           information is stored with the file names.  ZZAP will detect the
  450.           creation of any subdirectories, log the error message, move the
  451.           archive to the BAD subdirectory, and clean up (remove all files
  452.           and subdirectories extracted from the archive).
  453.  
  454.           If the unarc program creates the subdirectores anyplace besides
  455.           in the temporary subdirectory ZZAP will not be able to detect
  456.           them, the contents of the new archive will be incomplete, and the
  457.           subdirectories created will remain on your disk.
  458.  
  459.           See also COMSPEC.
  460.  
  461.  
  462.           5.3  DEFAULT=
  463.  
  464.  
  465.           This is the default extension used to decide which archiving
  466.           format to convert to.  The extension given must match one of the
  467.           extensions given with the ARC= command.  If a match is not found
  468.           the program will halt with an error.  The syntax for this command
  469.           is:
  470.  
  471.                          DEFAULT=ext
  472.  
  473.           where ext is the file extension corresponding to an archive type.
  474.  
  475.  
  476.  
  477.           Chapter 5. Configuration File                              Page 7
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.           The following are legal DEFAULT commands:
  485.  
  486.                          DEFAULT=ZIP
  487.                          DEFAULT=ZOO
  488.                          DEFAULT=.ARC
  489.  
  490.           Note that the preceding period is optional.
  491.  
  492.           You can override DEFAULT= with the command line switch /E.
  493.  
  494.  
  495.           5.4  NESTED=
  496.  
  497.  
  498.           You can modify how nested archives are handled with this command.
  499.           The following options are valid (choose only one):
  500.  
  501.                TEST      The nested archive is tested but not converted.
  502.                SAME      The archive is repacked to its same type.
  503.                CONVERT   The archive is converted to the default type.
  504.  
  505.           If you omit this command from the configuration file the default
  506.           operation is CONVERT.  Nested archives are always ignored
  507.           (treated as a normal file) if you disable nested archives
  508.           processing with /N-.
  509.  
  510.  
  511.           5.5  WORKDRIVE=
  512.  
  513.  
  514.           Specify the drive to use for temporary files with this command,
  515.           e.g.:
  516.  
  517.                          WORKDRIVE=E:
  518.  
  519.           If you use a RAM disk be sure it's very large so that it doesn't
  520.           fill up when archives are temporarily expanded.  If the drive
  521.           does become full the archive being converted/tested will be
  522.           flagged as "bad".
  523.  
  524.  
  525.           5.6  NESTEDARC=
  526.  
  527.  
  528.           Controls how nested archives are handled.  This command accepts
  529.           three options:
  530.  
  531.                TEST      Nested archives are tested only.
  532.                SAME      Nested archives are repacked to the same type.
  533.                CONVERT   Nested archives are converted to the default type.
  534.  
  535.           If this command is omitted from the configuration file the
  536.           default action is CONVERT.  The /T, /O and /N switches will
  537.           affect the action of this command.  /T will cause the entire
  538.  
  539.  
  540.  
  541.           Page 8                              Chapter 5. Configuration File
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.           contents of the archive to be tested only, no conversions.  /O
  549.           will cause the archive to repack to the same same, nested
  550.           archives included.  If /N- is specified nested archives will be
  551.           treated as a normal file, not an archive.
  552.  
  553.  
  554.           5.7  BADDIR=
  555.  
  556.  
  557.           Whenever an archive fails to unarc properly it will be renamed to
  558.           so the second character of the extension is "!", e.g. "Z!P".  By
  559.           default the file is kept in its original subdirectory.  If you
  560.           wish bad archives to be placed in a special subdirectory you may
  561.           use the BADDIR= command.  Simply name the subdirectory you wish
  562.           to use.  This subdirectory must already exist for this option to
  563.           work properly.  Example:
  564.  
  565.                          BADDIR=C:\BAD
  566.  
  567.           The defined subdirectory can be on a different drive but if the
  568.           file move is unsuccessful the file will simply be renamed to have
  569.           the normal bad extension (the default mode).
  570.  
  571.  
  572.           5.8  VIRUSDIR=
  573.  
  574.  
  575.           If an archive fails the virus check the archive will be placed in
  576.           the subdirectory named here.  If this command is not included in
  577.           the configuration file the archive will be placed in the
  578.           directory specified with the BADDIR= command or will be renamed
  579.           with the '!' in the extension if BADDIR= is not specified.  The
  580.           subdirectory must already exist for it to be used, ZZAP will not
  581.           create the subdirectory for you.
  582.  
  583.                          VIRUSDIR=C:\VIRUS
  584.  
  585.           The defined subdirectory can be on a different drive but if the
  586.           file move is unsuccessful the file will simply be renamed to have
  587.           the normal bad extension (the default mode).
  588.  
  589.  
  590.           5.9  SWITCH=
  591.  
  592.  
  593.           Use this to specify your default command line switches.  For
  594.           example, if you always use the virus checking options you can
  595.           place this in your configuration file:
  596.  
  597.                          SWITCH=/V+
  598.  
  599.           You can always override the options on the command line:
  600.  
  601.                          ZZAP /V- file.ext
  602.  
  603.  
  604.  
  605.           Chapter 5. Configuration File                              Page 9
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.           The command line always takes precedence over the configuration
  613.           file.
  614.  
  615.  
  616.           5.10  FIXER=
  617.  
  618.  
  619.           Specify the name of your BBS download list fix-up program and
  620.           command line options with this command.  For example, if you are
  621.           running a QuickBBS bulletin board system you can specify
  622.           FIXER=QFIX.EXE (included in this package).
  623.  
  624.           Include any command line options needed immediately after the
  625.           fix-up program name.  For example, to automatically update the
  626.           4DOS description file the proper syntax would be:
  627.  
  628.                          FIXER=QFIX.EXE DESCRIPT.ION
  629.  
  630.           This command is only needed if you plan on using the /C command
  631.           line switch.
  632.  
  633.           See also COMSPEC.
  634.  
  635.  
  636.           5.11  AGE=
  637.  
  638.  
  639.           If this command is used then only files that are within the
  640.           specified number of days old will be processed.  For example,
  641.           setting the age to 1 (AGE=1) will result in only files that are
  642.           one day old (files with today's date ONLY) to be processed by
  643.           ZZAP.
  644.  
  645.           Sysops who have an "event" at midnight will generally wish to set
  646.           AGE= to 2, allowing files from today and yesterday to be
  647.           processed.  When using this feature you should use the /DO
  648.           command line switch (keep original dates of files).  Assuming you
  649.           stamped the files with the date they are uploaded, this would
  650.           guarantee that only new archives are processed.
  651.  
  652.           Omitting this command or setting AGE=0 results in the age of a
  653.           file to be completely ignored.
  654.  
  655.           See also the /I command line switch.
  656.  
  657.  
  658.           5.12  PRE=
  659.  
  660.  
  661.           If you wish an external program executed to process an archive
  662.           before its files are extracted declare the program name and
  663.           command line options with this command.
  664.  
  665.                PRE=GETCMTS.EXE %1
  666.  
  667.  
  668.  
  669.           Page 10                             Chapter 5. Configuration File
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.           With the above example the hypothetical program GETCMTS.EXE will
  677.           be execute with the archive name passed as the command line
  678.           parameter.  The specified program will be executed while in the
  679.           same subdirectory as the archive being processed (regardless of
  680.           the command line parameters).
  681.  
  682.           If the DOS return code returned by the PRE= program is exactly
  683.           101 further processing on the file will be skipped.  This could
  684.           be used to run a program that detects for authenticity
  685.           verification information (e.g. -AV option for PKZIP) since ZZAP
  686.           will lose the AV information if it rebuilds an archive.
  687.  
  688.           This program, as well as programs defined by MID= and POST= will
  689.           be executed for nested archives as well.  You should avoid
  690.           creating files in the temporary subdirectories ("Z.I_P" is
  691.           created as a child of the subdirectory holding the archive being
  692.           processed) as these files will be added to the new archive
  693.           (unless that is what you wish done).
  694.  
  695.           While testing ZZAP I often use a "PRE=MAPMEM.EXE >\MAP" to get a
  696.           memory map of the system while shelling to an external program.
  697.           This helped me to optimize memory usage so that the maximum
  698.           amount is available.
  699.  
  700.           See also MID=, POST=, and COMSPEC.
  701.  
  702.  
  703.           5.13  MID=
  704.  
  705.  
  706.           If you wish an external program executed after files have been
  707.           extracted from the old archive but before the new archive has
  708.           been created declare the program name and command line options
  709.           with this command.
  710.  
  711.                MID=DIRSORT.EXE NE
  712.  
  713.           With the above example the program DIRSORT.EXE will be executed
  714.           with the command line option of NE.  You can execute a batch file
  715.           via the command processor (normally COMMAND.COM) by specifying
  716.           %COMSPEC% as the filename.  This is useful for deleting those
  717.           silly BBS ads that seem to propagate unchecked throughout
  718.           archives.  For example, in ZZAP.CFG:
  719.  
  720.                MID=%COMSPEC% /c bbsads
  721.  
  722.           If your batch file is not somewhere on the PATH you should
  723.           include the path in the filename.  In your batch file called
  724.           BBSADS.BAT:
  725.  
  726.                IF EXIST STUPID.AD DEL STUPID.AD
  727.                REM repeat for BBS AD filename
  728.  
  729.  
  730.  
  731.  
  732.  
  733.           Chapter 5. Configuration File                             Page 11
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.           The specified program will be executed while in the temporary
  741.           subdirectory ZZAP creates to hold the extracted files.  If you
  742.           create any temporary files you should clean up afterwards,
  743.           otherwise the file(s) will be added to the archive when it is
  744.           repacked.
  745.  
  746.           See also PRE=, POST=, and COMSPEC.
  747.  
  748.  
  749.           5.14  POST=
  750.  
  751.  
  752.           If you wish an external program executed to process the new
  753.           archive after it as been created (or repacked) declare the
  754.           program name and command line options with this command.
  755.  
  756.                POST=PUTCMTS.EXE %1
  757.  
  758.           With the above example the hypothetical program PUTCMTS.EXE will
  759.           be executed with the archive name (the new name) as the command
  760.           line parameter.  The specified program will be executed while in
  761.           the same subdirectory as the archive being processed (regardless
  762.           of the command line parameters).
  763.  
  764.           The main intent of the PRE= and POST= commands is to allow third
  765.           party programmers to create programs that extract archive
  766.           comments from the original archives and then put them into the
  767.           new archives.  Since these are format specific I didn't want to
  768.           program these types of operations into ZZAP.
  769.  
  770.           See also PRE=, MID=, and COMSPEC.
  771.  
  772.  
  773.           5.15  SFX=
  774.  
  775.  
  776.           Defines the offset and "signature" to search for in an EXE or COM
  777.           file to verify if it is a self-extracting archive.  The
  778.           parameters are:
  779.  
  780.                SFX=ext offset signature
  781.  
  782.           For example, for ZIP version 1.10 self-extracting archives the
  783.           parameters are:
  784.  
  785.                SFX=ZIP 50 PKWARE
  786.  
  787.           The extension you specify will determine which unarc program is
  788.           used to extract the files in the archive.  The offset is a
  789.           decimal number indicating the position in the file that the
  790.           signature is found at.  The signature is any combination of
  791.           characters that can uniquely determine if the archive is that
  792.           specific SFX type.
  793.  
  794.  
  795.  
  796.  
  797.           Page 12                             Chapter 5. Configuration File
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.           Multiple definitions can be given for the same extension, thus
  805.           allowing different versions to be supported.  For example most
  806.           SFX archives come in two flavors, regular and junior.  The offset
  807.           and/or signatures are usually different for each type, though the
  808.           same unarc program can be used for either type.
  809.  
  810.           The signature can be regular ASCII characters (case is
  811.           significant) as well as the following special characters:
  812.  
  813.                    ^           Species a control character, e.g. ^A is
  814.                                replaced with ASCII byte value 01h.
  815.                    #           Place numbers between a pair of these to
  816.                                indicate a specific ASCII value, e.g. #13#
  817.                                for ASCII character 13 (decimal).
  818.                    /           The following character is used as is.  Must
  819.                                precede the /, ^ or # character, e.g. /^
  820.                                when you want an explicit ^ character.
  821.  
  822.  
  823.           5.16  NONSFX=
  824.  
  825.  
  826.           By default, executable files (EXE and COM) which are not
  827.           recognized as self-extracting archives are treated as "bad".  If
  828.           you would prefer to have these files ignored include
  829.           NONSFX=IGNORE in the configuration file.  Leaving out this
  830.           command or including NONSFX=BAD will result in executables to be
  831.           treated as "bad" if they are not self-extracting archives.  Note
  832.           that executables inside an archive are NEVER treated as bad even
  833.           if they are not SFX.
  834.  
  835.  
  836.           5.17  NESTEDSFX=
  837.  
  838.  
  839.           You can have ZZAP check for SFX signatures in executable files
  840.           contained inside an archive by including NESTEDSFX=YES in the
  841.           configuration file.  Note that many programs include automatic
  842.           installation programs that rely on certain files being SFX and
  843.           converting these files will probably break these programs (though
  844.           they are rare).  Alternately, you can have archives with nested
  845.           SFX files flagged as "bad" and placed in the bad archive
  846.           subdirectory (or renamed), giving you the opportunity to manual
  847.           examine the archive and decide if it should be converted or left
  848.           alone.
  849.  
  850.           The valid options for this command are:
  851.  
  852.                NESTEDSFX=YES            ; test for nested SFX
  853.                NESTEDSFX=NO             ; don't test for nested SFX
  854.                NESTEDSFX=BAD            ; treat nested SFX as "bad"
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.           Chapter 5. Configuration File                             Page 13
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.           5.18  SCANOPT=
  869.  
  870.  
  871.           Place, after this command, any command line options you wish
  872.           passed on to SCAN.EXE when it is executed.  The given options
  873.           will be added after the subdirectory to scan exactly as shown in
  874.           the configuration file.  For example, if you have this in the
  875.           configuration file:
  876.  
  877.                     SCANOPT=/A /NOMEM
  878.  
  879.           SCAN will be executed as:
  880.  
  881.                     SCAN pathname /A /NOMEM
  882.  
  883.  
  884.           5.19  WORKDRV=
  885.  
  886.  
  887.           Use this directive to specify a different drive and/or directory
  888.           for temporary workspace.  If you specify a directory it must
  889.           already exist.  If you use a RAM disk as the work drive be sure
  890.           it's large enough to hold the entire uncompressed contents of the
  891.           largest archive you will be converting.
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.           Page 14                             Chapter 5. Configuration File
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.                                      Chapter Six
  936.  
  937.                                 Logging ZZAP Activity
  938.  
  939.  
  940.           If you wish ZZAP to run unattended (see EVENTS below) then you
  941.           may wish to log its activities.  You must specify the drive full
  942.           path and file name of the log file in the environment with the
  943.           ZZAPLOG variable.  In your AUTOEXEC.BAT file you should place
  944.           this (or something similar):
  945.  
  946.                     SET ZZAPLOG=C:\LOG\ZZAP.LOG
  947.  
  948.           The actual file name will depend upon your system configuration.
  949.  
  950.           The first time the log option is used the log file is created.
  951.           On subsequent runs new information is appended to the end of the
  952.           file.
  953.  
  954.           The log file is a standard ASCII file that may be viewed, edited,
  955.           printed, etc..  The long form log file (enabled with the /L
  956.           switch) contains information about the files converted, their
  957.           original and new sizes, differences in archive sizes (savings or
  958.           loss), as well as error messages.  The short form log file only
  959.           contains error messages.
  960.  
  961.           See also the /L command line switch.
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.           Chapter 6. Configuration File                             Page 15
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.                                     Chapter Seven
  1000.  
  1001.                                   Executing Compsec
  1002.  
  1003.  
  1004.           Any time you declare, in the configuration file, a program to be
  1005.           executed you have the option of using %COMSPEC% to indicate to
  1006.           ZZAP to execute DOS (normally COMMAND.COM).  With this feature
  1007.           you can execute a batch file instead of a single program.  For
  1008.           example:
  1009.  
  1010.                     FIXER=%COMSPEC% /C FIXUP %1
  1011.  
  1012.           If FIXUP is a batch file it will be executed with the archive
  1013.           name passed as the parameter.  The /C option is to tell DOS to
  1014.           return to the calling program (ZZAP) when execution has been
  1015.           completed.
  1016.  
  1017.           Caution!  When you execute COMSPEC any error codes returned by
  1018.           programs will be unseen by ZZAP.
  1019.  
  1020.           See also PRE=, MID=, and POST=.
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.           Page 16                          Chapter 7. Logging ZZAP Activity
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.                                     Chapter Eight
  1064.  
  1065.                                 Command Line Options
  1066.  
  1067.  
  1068.           There are a number of command line options that allow you to
  1069.           customize the behavior of ZZAP.  These options can also be
  1070.           declared in the configuration file using the SWITCH= statement.
  1071.           Command line options override configuration file options.
  1072.  
  1073.           With the exception of the /E and /D switches, each option is a
  1074.           forward slash (/), a letter, and optionally followed by a plus
  1075.           (+) or minus (-).  If the option is given but the plus or minus
  1076.           is omitted then plus is assumed, e.g. /A is equivalent to /A+.
  1077.           Plus (+) turns the option on and minus (-) turns the option off.
  1078.  
  1079.                    /A          Flag archives with HIDDEN, SYSTEM, or READ-
  1080.                                ONLY files (default ON).
  1081.                    /B          Allow subdirectories.
  1082.                    /C          Call the BBS file description updating
  1083.                                program.
  1084.                    /D          File date stamping.
  1085.                    /E          Extension of archive type to convert to.
  1086.                    /F          Create a list of files that were converted
  1087.                                (default OFF).
  1088.                    /I          Ignore age of files.
  1089.                    /K          Keep the original archive (default OFF).
  1090.                    /L          Long Log file.
  1091.                    /M          Use expanded or  extended memory when
  1092.                                shelling (default ON).
  1093.                    /N          Convert archives nested within archives
  1094.                                (default ON).
  1095.                    /O          Repack all archives to original archive type
  1096.                                (default OFF)
  1097.                    /P          Prevent overwriting existing archives
  1098.                                (default OFF).
  1099.                    /R          Recurs subdirectories (default OFF).
  1100.                    /S          Strip HIDDEN, SYSTEM, and READ-ONLY
  1101.                                attributes (default OFF).
  1102.                    /T          Test mode only - no repacking (default OFF).
  1103.                    /V          Scan for viruses (default OFF).
  1104.                    /X          Enable self-extracting archive processing.
  1105.                    /Z          Enable/disable I/O redirection.
  1106.  
  1107.  
  1108.           8.1  Flag Odd Attributes - /A
  1109.  
  1110.  
  1111.           If this option is ON any archive that contains a file with the
  1112.           HIDDEN, SYSTEM, or READ-ONLY attribute will be treated as a
  1113.           corrupt archive and be renamed to have a "!" as the second
  1114.  
  1115.  
  1116.  
  1117.           Chapter 8. Executing Compsec                              Page 17
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.           character of the extension.  Currently, only PKZIP, LHARC, and
  1125.           ICE support attributes within the archive.
  1126.  
  1127.           It is highly recommended that you have on either the /A or /S
  1128.           command at all times since most archiving programs will
  1129.           completely ignore hidden files, possibly resulting in lost files.
  1130.  
  1131.           The /S (strip attributes) command will override this command.
  1132.  
  1133.  
  1134.           8.2  Allow subdirectories - B
  1135.  
  1136.  
  1137.           Some archive formats allow subdirectory information to be
  1138.           imbedded into the archive.  By default, ZZAP treats archives with
  1139.           subdirectory information as BAD archives, leaving them for you to
  1140.           manually examine and process.
  1141.  
  1142.           If the archive format you are converting to supports
  1143.           subdirectories you can have this information automatically
  1144.           included in the conversion process by modifying the program
  1145.           options for the ARC and UNARC programs and including the /B
  1146.           option on the command line (or with the SWITCH= option).
  1147.  
  1148.           It is assumed that subdirectories that are created by the UNARC
  1149.           program will be child directories of ZZAP's temporary work
  1150.           subdirectory ZZAP.  If a subdirectory is created elsewhere it
  1151.           will not be detected and the files contained therein will not be
  1152.           added to the new archive.  Nested archives that are placed in
  1153.           created subdirectories will not be converted by ZZAP.
  1154.  
  1155.           *** WARNING ***  Do not use the /B switch unless you are sure
  1156.           that the default archive configuration is properly configured to
  1157.           allow subdirectory information.  Improper configuration will
  1158.           result in the failure of files to be included in the new
  1159.           subdirectory.  It is URGED that you manually test all possible
  1160.           situations before trusting the /B switch in an unattended mode.
  1161.  
  1162.           The following archive programs can NOT be used to extract
  1163.           subdirectory information.  This limitation is because the
  1164.           programs insist on creating the original subdirectories instead
  1165.           of creating the subdirectories as children of the current
  1166.           directory:
  1167.  
  1168.                     DWC A495
  1169.                     PAK 2.10
  1170.  
  1171.           This limitation may be removed in future versions of these
  1172.           programs or the limitation could be removed by changing the
  1173.           configuration of each of these programs in the ZZAP configuration
  1174.           file.
  1175.  
  1176.           This limitation does not exist for the creation of new archives,
  1177.           however, it should be noted that because the entire path is
  1178.  
  1179.  
  1180.  
  1181.           Page 18                           Chapter 8. Command Line Options
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.           stored you may not have the subdirectory information that you
  1189.           desire.  *** REPEAT OF WARNING *** allow subdirectory creation
  1190.           with extreme caution.  It is highly recommended that you leave
  1191.           out the /B option and handle the subdirectories manual on a
  1192.           case-by-case basis.
  1193.  
  1194.  
  1195.           8.3  Call Update Program - /C
  1196.  
  1197.  
  1198.           Turning this option on causes the fix-up program named in the
  1199.           configuration file (see FIXER=) to be executed after all
  1200.           conversions have been completed.  This removes the necessity to
  1201.           execute the program after running ZZAP.
  1202.  
  1203.           Turning this option on also forces the /F option on as well.
  1204.  
  1205.           This option is ignored when using the Test Only mode (/T).
  1206.  
  1207.  
  1208.           8.4  File Date Stamping - /D
  1209.  
  1210.  
  1211.           ZZAP provides three different options for setting the date and
  1212.           time of the archives after they have been converted.  Immediately
  1213.           follow /D with one of three letters to indicate which stamping
  1214.           method to use:
  1215.  
  1216.                    T           Stamp with the current date and time
  1217.                                (Today).
  1218.                    L           Stamp with the date and time of the most
  1219.                                recent file contained in the archive
  1220.                                (Latest).
  1221.                    O           Keep the original date and time of the
  1222.                                archive (Original).
  1223.  
  1224.           Sysops may wish to use the /DO (original date) option in
  1225.           conjunction with the AGE= configuration file command.  If your
  1226.           daily maintenance event is at midnight you should set AGE=2.
  1227.           After a file is successfully uploaded you should "TOUCH" the file
  1228.           with the current date and time.  When the daily event occurs,
  1229.           only files that are one or two days old will be processed.  Since
  1230.           there shouldn't be any one day old files (assuming a midnight
  1231.           event), only the files uploaded from the previous day will be
  1232.           processed.
  1233.  
  1234.           The default stamping method is /DL.
  1235.  
  1236.  
  1237.           8.5  Target Extension - /E
  1238.  
  1239.  
  1240.           Overrides the DEFAULT= option in the configuration file.  Follow
  1241.           immediately with a three letter extension, for example:
  1242.  
  1243.  
  1244.  
  1245.           Chapter 8. Command Line Options                           Page 19
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.                     ZZAP /EZIP *.LZH
  1253.  
  1254.           The above example will convert all LZH type archives in the
  1255.           current directory to ZIP archives.
  1256.  
  1257.           Unlike the DEFAULT= configuration file option, you must not
  1258.           precede the extension with a period.
  1259.  
  1260.  
  1261.           8.6  File List - /F
  1262.  
  1263.  
  1264.           If the /F+ option is used the text file FILES.FIX will be created
  1265.           that lists each of the files converted.  Each line contains a
  1266.           single entry, first is the full path and file name of the
  1267.           original file, followed by a single space, and finally the new
  1268.           file name (no path), for example:
  1269.  
  1270.                C:\ARCHIVES\MYARC.LZH MYARC.ZIP
  1271.                C:\ARCHIVES\ANOTHER.ZOO ANOTHER.ZIP
  1272.                C:\NEWSTUFF\JUNK.ICE JUNK.ZIP
  1273.  
  1274.           Files that are repacked to the same type (e.g. ZIP to ZIP) will
  1275.           also be listed in this file.  Under some BBS list formats the
  1276.           file size, date, time, etc. are also stored along with the file
  1277.           name and description.  It is up to the programmer of the filter
  1278.           to use or ignore unchanged file names as necessary.
  1279.  
  1280.           This option is ignored when using the Test Only mode (/T).
  1281.  
  1282.           This text file can be used by a filter program to modify any file
  1283.           list as used by most BBS systems to reflect the change of file
  1284.           names.  Included with ZZAP is the program QFIX.EXE that modifies
  1285.           the file list format used by QuickBBS and many other BBS systems
  1286.           as well as the description file used by 4DOS.  See the QFIX
  1287.           document file for additional information.
  1288.  
  1289.           A filter program for TBBS called DIRFIX has been written by Gary
  1290.           W. Funk.  This program is also included with ZZAP by permission.
  1291.  
  1292.           I will be happy to provide some limited assistance in developing
  1293.           filter programs for other BBS list formats.  If you develop a
  1294.           filter program that would be of interest to others, send a copy
  1295.           to me so I can make it available to other sysops.  Appropriate
  1296.           acknowledgments will, of course, be given.
  1297.  
  1298.  
  1299.           8.7  Ignore File Age - /I
  1300.  
  1301.  
  1302.           If you use the AGE= option to ignore files that are more than a
  1303.           specified number of days old you can override this with the /I
  1304.           command.  Enabling the /I option will result in all files
  1305.  
  1306.  
  1307.  
  1308.  
  1309.           Page 20                           Chapter 8. Command Line Options
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.           (matching the file specification) being processed, regardless of
  1317.           their age.
  1318.  
  1319.  
  1320.           8.8  Keeping The Original - /K
  1321.  
  1322.  
  1323.           By default the original archive is deleted after the new archive
  1324.           is successfully created.  To prevent the old archives from being
  1325.           deleted you need to turn ON the /K (keep) option.  For example:
  1326.  
  1327.                          ZZAP /K+ *.ARC
  1328.  
  1329.           This switch can be used in combination with any other option:
  1330.  
  1331.                          ZZAP /K+ /R+ C:\*.ARC
  1332.  
  1333.  
  1334.           8.9  Long Log file - /L
  1335.  
  1336.  
  1337.           The /L option is used to select between the long form log file,
  1338.           in which status reports of archive conversions are kept (original
  1339.           size, new size, difference in size, etc.) or the short form log
  1340.           file which only contains error messages.  /L+ selects the long
  1341.           form while /L- selects the short form.  The default is the short
  1342.           form log if the /L command is not used.
  1343.  
  1344.  
  1345.           8.10  Expanded/Extended Memory - /M
  1346.  
  1347.  
  1348.           By default ZZAP will take advantage of expanded or extended
  1349.           memory while shelling to an archive program.  This makes more
  1350.           memory available to the archiver and may mean the difference
  1351.           between success or failure in a tight memory system.  If you do
  1352.           NOT wish expanded to be used include the /M- option on the
  1353.           command line.
  1354.  
  1355.           To use expanded memory a LIM 4.0 driver be installed as well as
  1356.           sufficient EMS to store the bulk of the program and data.
  1357.  
  1358.           To use extended memory an XMS driver such as HIMEM.SYS (available
  1359.           free from Microsoft) must be installed as well as sufficient
  1360.           extended memory to store the bulk of the program and data.
  1361.  
  1362.  
  1363.           8.11  Convert Nested - /N
  1364.  
  1365.  
  1366.           If this option is on, any archives nested within an archive being
  1367.           converted will also be converted.  All nested archive types
  1368.           supported will be converted to the default type.  Nested archives
  1369.           are left unchanged (and untested!) if this option is off.
  1370.  
  1371.  
  1372.  
  1373.           Chapter 8. Command Line Options                           Page 21
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.           8.12  Keep Original Archive Format - /O
  1381.  
  1382.  
  1383.           When on, all archives are repacked, but they retain their
  1384.           original archive type.  Thus, a ZIP file will be repacked as a
  1385.           ZIP, a LZH file will be repacked as a LZH, etc., regardless of
  1386.           the default archive type.  Nested archives will be converted to
  1387.           the parent archive's type if the /N switch is enabled, otherwise
  1388.           the nested archive will be untouched (and untested!).  Self-
  1389.           extracting archives will be converted to the same type but
  1390.           without the SFX program code.
  1391.  
  1392.           Using this switch without the AGE= option could result in
  1393.           archives being processed several times if you use a wildcard for
  1394.           the extension.  While this doesn't hurt anything it does waste
  1395.           time unnecessarily.  This problem won't occur if you move
  1396.           archives to a new subdirectory after processing them with ZZAP.
  1397.  
  1398.  
  1399.           8.13  Prevent Overwriting - /P
  1400.  
  1401.  
  1402.           By default an existing archive can be overwritten when
  1403.           converting.  For example, if both TEST.ZIP and TEST.LZH exist and
  1404.           you convert TEST.LZH to a ZIP file, the original TEST.ZIP will be
  1405.           replaced by the new ZIP file (formerly TEST.LZH).  If the /P
  1406.           option is turned on it will prevent this from occurring, in fact,
  1407.           any archive that would cause an overwrite would be completely
  1408.           ignored, without any status message being displayed.
  1409.  
  1410.           This option has no effect when using the Test Only mode (/T).
  1411.  
  1412.  
  1413.           8.14  Subdirectory Recursion - /R
  1414.  
  1415.  
  1416.           If you have multiple subdirectories with archives you need to
  1417.           convert, you can either process each subdirectory individually or
  1418.           use the recursion feature of ZZAP.  Subdirectory recursion means
  1419.           ZZAP will start at a given subdirectory and convert all archives
  1420.           in it and all archives in any child subdirectories.  This feature
  1421.           is especially handy when you have a Bulletin Board System with a
  1422.           large number of specialized file areas.
  1423.  
  1424.           Subdirectory Recursion is invoked by the /R command line options.
  1425.           The following are valid command lines:
  1426.  
  1427.                          ZZAP /R+ \FILES\T*.ZOO
  1428.                          ZZAP /R+ \*.ARC
  1429.                          ZZAP /R *.PAK
  1430.                          ZZAP /R+/V+ *.*
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.           Page 22                           Chapter 8. Command Line Options
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.           8.15  Strip Attributes - /S
  1445.  
  1446.  
  1447.           The /S options will strip the HIDDEN, SYSTEM, and READ-ONLY
  1448.           attributes from all files contained in the archive before adding
  1449.           the files to the new archive.  Note that most archiving programs
  1450.           do not support unusual attributes and will simply ignore files
  1451.           containing these three attributes.  You should use either the /A
  1452.           or /S command if there is any chance of any of these three
  1453.           attributes being run across.
  1454.  
  1455.           Turning this option on will cause the /A option to be turned off.
  1456.  
  1457.           This option has no effect when using the Test Only mode (/T).
  1458.  
  1459.  
  1460.           8.16  Test Only - /T
  1461.  
  1462.  
  1463.           If you merely wish to test the integrity of an archive and
  1464.           possibly run a virus check use the /T switch.  All normal steps
  1465.           will be executed with the exception of the creation of the new
  1466.           archive.
  1467.  
  1468.           The date/time stamp of a archives will not be changed during the
  1469.           Test mode unless a /D command is explicitly stated, either in the
  1470.           configuration file with the OPTIONS= command, or on the command
  1471.           line.
  1472.  
  1473.           This feature would be more useful with SDN archives if PAK would
  1474.           return a nonzero exit code if the security envelope was missing.
  1475.           Unfortunately, as of version 2.10 it returns a code of zero as
  1476.           long as the archive is not corrupted (beyond the missing security
  1477.           envelope).
  1478.  
  1479.  
  1480.           8.17  Virus Scan - /V
  1481.  
  1482.  
  1483.           The /V option will enable the virus scan option.  You must have
  1484.           version 39 or greater of McAfee Associates virus scanning program
  1485.           SCAN.EXE placed on your execution PATH.  If a virus is detected
  1486.           the archive will be treated as corrupted and an error message
  1487.           will be displayed and placed in the log file (if enabled).
  1488.  
  1489.           See also the SCANOPT= and VIRUSDIR= configuration file commands.
  1490.  
  1491.  
  1492.           8.18  Self-extracting Archives - /X
  1493.  
  1494.  
  1495.           Enables or disables the processing of self-extracting archives
  1496.           when a wildcard is specified for the file extension.  When
  1497.           enabled, files with the extension of EXE or COM will be checked
  1498.  
  1499.  
  1500.  
  1501.           Chapter 8. Command Line Options                           Page 23
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.           to see if they are self-extracting archives as defined with the
  1509.           SFX= command.
  1510.  
  1511.           Files contained inside an archive are never checked as SFX files.
  1512.           Any EXE or COM program will be treated as a corrupted archive if
  1513.           it is not self-extracting.
  1514.  
  1515.           Examples:
  1516.  
  1517.                     zzap /t *.exe
  1518.  
  1519.           The /X switch was not required since an explicit extension was
  1520.           specified.
  1521.  
  1522.                     zzap /x *.*
  1523.  
  1524.           All archive types are converted to the default archive type.  EXE
  1525.           and COM programs are also converted if they are self-extracting.
  1526.  
  1527.  
  1528.           8.19  Enable/Disable CRC Verification - /Y
  1529.  
  1530.  
  1531.           Enables program file CRC verification.  Before you can use this
  1532.           option you need to create a CRC data file with an entry for each
  1533.           program file you wish CRC verified.  Consult the file MAKECRC.DOC
  1534.           for instructions to do this.  The /Y switch allows you to enable
  1535.           and disable the CRC option without having to modify the
  1536.           configuration file.
  1537.  
  1538.  
  1539.           8.20  Enable/Disable I/O Redirection - /Z
  1540.  
  1541.  
  1542.           Turning this option off disables all I/O redirection.  ZZAP is
  1543.           configured to redirect all the output of the external programs to
  1544.           the NULL device to keep a clean screen.  When you are having a
  1545.           problem with program configuration it is often helpful to turn
  1546.           off the redirection so you can see each phase of the conversion
  1547.           process.  Using this command line switch is much easier than
  1548.           editing the configuration file to remove the redirection
  1549.           commands.
  1550.  
  1551.           This option is ON by default.
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.           Page 24                           Chapter 8. Command Line Options
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.                                     Chapter Nine
  1576.  
  1577.                            Locating The Configuration File
  1578.  
  1579.  
  1580.           ZZAP will try it's best to locate the configuration file.  Upon
  1581.           execution it searches for the configuration file in the following
  1582.           order:
  1583.  
  1584.              1.  The current subdirectory.
  1585.              2.  The Subdirectory defined by the environment variable
  1586.                  ZZAP=, e.g. ZZAP=C:\BIN.
  1587.              3.  The subdirectory ZZAP.EXE resides in (DOS 3.x only).
  1588.              4.  Each subdirectory defined by PATH in the environment.
  1589.  
  1590.           If you wish to keep the configuration file in a directory not on
  1591.           the PATH and still be able to execute ZZAP from any subdirectory
  1592.           you should set the environment variable:
  1593.  
  1594.                     SET ZZAP=C:\STUFF
  1595.  
  1596.           If the configuration file can not be found ZZAP will halt with an
  1597.           error.
  1598.  
  1599.  
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.           Chapter 9. Command Line Options                           Page 25
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.                                      Chapter Ten
  1640.  
  1641.                                     Running ZZAP
  1642.  
  1643.  
  1644.           ZZAP is fully configured for the major archiving programs.  The
  1645.           only change in the configuration file you may need to make is the
  1646.           EXT= command to set your preferred default archive type.
  1647.  
  1648.           To run ZZAP, simply type ZZAP followed by the filename (wild-
  1649.           cards allowed).  The filename MUST have an extension.  If the
  1650.           extension is wild (*) then all archive types defined by UNARC=
  1651.           commands will be converted to the new archive type as defined by
  1652.           ARC=.  The following are legal:
  1653.  
  1654.                     ZZAP *.ZOO
  1655.  
  1656.           Converts all ZOO files in the default subdirectory to the new
  1657.           archive type or repacks ZOO files if that is the default
  1658.           extension.
  1659.  
  1660.                     ZZAP \UPLOADS\AFILE.ZIP
  1661.  
  1662.           Converts AFILE.ZIP, located in the \UPLOADS subdirectory, to the
  1663.           new archiving type.
  1664.  
  1665.                     ZZAP *.*
  1666.  
  1667.           Converts all archive types that are not the default format, in
  1668.           the current subdirectory, to the new archive type.
  1669.  
  1670.           When using a wild-card for the extension archives with the
  1671.           default extension will be ignored.  To repack archives to the
  1672.           same type, e.g. ZIP to ZIP, you must explicitly state the
  1673.           extension.
  1674.  
  1675.                     ZZAP *.ZIP
  1676.  
  1677.           If you wish to repack an archive to the same type you must
  1678.           explicitly name the extension as the default archive type is
  1679.           ignored when doing a wild card conversion (this is to avoid
  1680.           repacking the same archives every time you run ZZAP).
  1681.  
  1682.           If your default archive type is LZH simply give that as the
  1683.           extension to convert:
  1684.  
  1685.                     ZZAP *.LZH
  1686.  
  1687.           When repacking an archive, all archive and file comments are
  1688.           lost.
  1689.  
  1690.  
  1691.  
  1692.  
  1693.           Page 26               Chapter 10. Locating The Configuration File
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.           Note that the /P and /K options are ignored when doing a repack.
  1701.  
  1702.           ZZAP can also accept multiple file names on the command line:
  1703.  
  1704.                     ZZAP /V *.ZIP *.*
  1705.  
  1706.           Assuming a default archive type of ZIP, this example first
  1707.           repacks all ZIP files (and does a virus check) then converts all
  1708.           other types to ZIP format, also with a virus check.  If the order
  1709.           had been changed, "ZZAP /V *.* *.ZIP", all archives would be
  1710.           converted to ZIP format then all ZIP files would be repacked,
  1711.           clearly not the intention.
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.           Chapter 10. Running ZZAP                                  Page 27
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.                                    Chapter Eleven
  1768.  
  1769.                                    Nested Archives
  1770.  
  1771.  
  1772.           It is not uncommon to find archives nested inside an archive.  A
  1773.           program that includes source code may have the source code
  1774.           archived and placed within the main archive.  ZZAP will properly
  1775.           handle this situation and convert the nested archives to the new
  1776.           format.  If fact, it will even convert nested archives of a
  1777.           differing types.  Theoretically, an unlimited amount of nesting
  1778.           can be handled, only limited by available memory, but this has
  1779.           only been tested one deep.
  1780.  
  1781.           If you do not wish nested archives to be converted you should use
  1782.           the /N- option on the command line or place it in the
  1783.           configuration file using the SWITCH= command.
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.           Page 28                                  Chapter 11. Running ZZAP
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.                                    Chapter Twelve
  1832.  
  1833.                                When Good Files Go Bad
  1834.  
  1835.  
  1836.           If a file is found to be corrupted further processing on that
  1837.           file is halted and the archive is renamed to have a "!" as the
  1838.           second character of the extension, for example, "Z!P".  If the
  1839.           corrupted archive is nested only the parent archive is renamed.
  1840.           You will have to manually unarc the archive to find the actual
  1841.           problem.
  1842.  
  1843.           ZZAP assumes that a file is corrupted when the "EXIT CODE" for
  1844.           the unarc program is nonzero.
  1845.  
  1846.           PAK version 1.0 is known to not return a proper error code so
  1847.           ZZAP will not work with it.  I'm not sure which version they
  1848.           fixed the bug in.  I do know that it works properly with PAK
  1849.           version 1.6.
  1850.  
  1851.           Just because ZZAP says an archive is corrupted does not
  1852.           necessarily mean it is true.  When the archiving program returns
  1853.           a nonzero exit code ZZAP has know way of knowing what the code
  1854.           represents.  Some of the reasons an archive might be flagged as
  1855.           bad are:
  1856.  
  1857.               o  Archive is truly corrupted.
  1858.  
  1859.               o  Insufficient memory, there was enough memory to execute
  1860.                  the archiving program but not enough for the archiving
  1861.                  program to properly process the archive.
  1862.  
  1863.               o  Insufficient disk space.  A very large archive can quickly
  1864.                  eat up disk space.  Even a seemingly small archive can
  1865.                  suddenly expand into a big file.  Font files, for example,
  1866.                  typically compress to only 5% of the original size.  A 72
  1867.                  point font can take more than 1Meg of disk space while
  1868.                  requiring less than 100k when compressed.  Keep in mind
  1869.                  that ZZAP requires enough disk space to hold the original
  1870.                  archive, the expanded files, and the new archive.
  1871.                  Therefore, a 100k archive that expands to 500k and
  1872.                  recompresses to 75k will temporarily require 675k of disk
  1873.                  space.
  1874.  
  1875.               o  Invalid archive version.  When a new version of an archive
  1876.                  program is released it often includes improved compression
  1877.                  techniques that older versions of the program can not
  1878.                  handle.  Upgrade your archive software.
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.           Chapter 12. Nested Archives                               Page 29
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.               o  Command line options as defined in the configuration file
  1893.                  are incorrect.  Double check each ARC= and UNARC= command
  1894.                  in the configuration file.
  1895.  
  1896.               o  Archive program is corrupted.  Make sure that your
  1897.                  archiving programs are working properly.
  1898.  
  1899.               o  Disk error.  If your disk has a bad sector it could result
  1900.                  in a unsuccessful archiving or unarchiving.
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.           Page 30                        Chapter 12. When Good Files Go Bad
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.                                   Chapter Thirteen
  1960.  
  1961.                               External Event Conversion
  1962.  
  1963.  
  1964.           Some bulletin board systems support timed "events".  These events
  1965.           are used to automate the operation of the board.  Using an event
  1966.           can make it possible for the bulletin board to automatically
  1967.           handle the conversion of any archive type to the type supported
  1968.           by the board.  A BBS that automatically converts archive types
  1969.           could allow the callers to upload archives of virtually any type.
  1970.  
  1971.           Under FrontDoor, for example, you can use an external event for
  1972.           this process.  An external event causes FrontDoor to terminate
  1973.           with a specified error level.  The error level can then be
  1974.           queried to decide what should be done.
  1975.  
  1976.           Follows is a fragment from a possible batch file to do just this.
  1977.           This example assumes all new uploads are placed in the
  1978.           subdirectory "C:\UPLOADS".
  1979.  
  1980.                IF ERRORLEVEL 87 GOTO do_this
  1981.                IF ERRORLEVEL 86 GOTO arc_convert
  1982.                IF ERRORLEVEL 85 GOTO do_that
  1983.  
  1984.                REM convert all archive types to ZIP files
  1985.                :arc_convert
  1986.                  zzap /f+ c:\uploads\*.*
  1987.  
  1988.                GOTO run_fd
  1989.  
  1990.           There is one problem with this type of system - what happens to
  1991.           the descriptions?  Some BBS programs automatically place the file
  1992.           name and description in an ASCII file.  If the file is then
  1993.           converted the filename is changed and would no longer match the
  1994.           name given with the description.  The /F option and the QFIX
  1995.           program (included) handle the conversion for QuickBBS format file
  1996.           list.
  1997.  
  1998.           See QFIX.DOC for further information.  See also the description
  1999.           of the /C options as well as the configuration file option FIXER=
  2000.           and other related options.
  2001.  
  2002.  
  2003.  
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.  
  2012.  
  2013.           Chapter 13. When Good Files Go Bad                        Page 31
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.                                      Appendix A
  2024.  
  2025.                                 Sysop Recommendations
  2026.  
  2027.  
  2028.           If your BBS supports them, the following system is recommended:
  2029.  
  2030.               -  When a new file is uploaded set its date to "Today's
  2031.                  date", using a TOUCH program (or whatever means).
  2032.  
  2033.               -  Set up an midnight "event" to process all new uploads.
  2034.  
  2035.               -  Use the AGE=2 command in ZZAP.CFG.
  2036.  
  2037.               -  Run ZZAP with /T /DO to test files already in the default
  2038.                  archive format and retain the original date.
  2039.  
  2040.               -  Run ZZAP with /DO to convert all archives to the default
  2041.                  format and retain the original date.
  2042.  
  2043.           An alternate configuration is:
  2044.  
  2045.               -  Create a subdirectory to hold of "Today's" uploads.
  2046.  
  2047.               -  Create a subdirectory to hold all New (or this month's)
  2048.                  uploads.
  2049.  
  2050.               -  Set your system to convert/test archives at any desired
  2051.                  time.
  2052.  
  2053.               -  At conversion/test time:
  2054.  
  2055.                      *  Run ZZAP with /T to test all files already in the
  2056.                         default archive format.  Use your preferred date
  2057.                         (/D) option.
  2058.  
  2059.                      *  Run ZZAP to convert all archives to the default
  2060.                         format. Use your preferred date (/D) option.
  2061.  
  2062.               -  Alternately:
  2063.  
  2064.                      *  Use the /O switch to repack all archives, keeping
  2065.                         their original archive formats.  Use your preferred
  2066.                         /D date/time option.
  2067.  
  2068.               -  Move all freshly tested/converted archive to the
  2069.                  Monthly/New uploads subdirectory.
  2070.  
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.           Page 32                         Appendix A. Sysop Recommendations
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.                                      Appendix B
  2088.  
  2089.                                      Exit Codes
  2090.  
  2091.  
  2092.           ZZAP will return exit codes upon termination.  These exit codes
  2093.           can be used by a batch file to decide what steps should be taken
  2094.           after running ZZAP.  The exit codes are
  2095.  
  2096.                    0           Normal termination - no errors, viruses, or
  2097.                                corrupted archives.
  2098.                    1           Virus detected.
  2099.                    2           Corrupted archive.
  2100.                    3           Configuration file not found.
  2101.                    4           Not configured for given target extension.
  2102.                                If you use the /O option ZZAP will continue
  2103.                                processing other archives.  This is so other
  2104.                                archive types can still be repacked.
  2105.                    5           Couldn't create temporary directory.
  2106.                    6           Other fatal error.
  2107.  
  2108.           There is a possibility for both a corrupted archive and a virused
  2109.           archive to have been detected (bad day!).  In this case an exit
  2110.           code of 1 (virus detected) will be returned, specifying the more
  2111.           critical situation.
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.  
  2121.  
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.           Appendix B. Exit Codes                                    Page 33
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.                                      Appendix C
  2152.  
  2153.                                    Acknowledgments
  2154.  
  2155.  
  2156.           Thanks to:
  2157.  
  2158.               o  Ken Doebler and Dan Geatons for their many suggestions.
  2159.  
  2160.               o  Randall Greylock (1:321/202.4) for pointing out an oddity
  2161.                  with ZOO and many fine suggestions which were implemented.
  2162.  
  2163.               o  Charles Falconer (1:141/488) for pointing out that I
  2164.                  didn't handle unusual file attributes (which LHARC and
  2165.                  PKZIP archives may retain) and other suggestions.
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.           Page 34                               Appendix C. Acknowledgments
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.                                      Appendix D
  2216.  
  2217.                                My Lawyer Made Me Do It
  2218.  
  2219.  
  2220.               -  DWC is copyright (c)1986,87,88 Dean W. Cooper.
  2221.               -  LHARC and ICE are copyright (c)1988,89 Haruyasu
  2222.                  Yoshizaki-san.
  2223.               -  LUE is copyright (c)1985 Vernon D. Buerg.
  2224.               -  PAK is copyright (c)1988,89 NoGate Consulting
  2225.               -  GSARC is copyright (c)1988 NoGate Consulting
  2226.               -  PKARC/PKXARC and PKPAK/PKUNPAK are copyright (c)1986,87,88
  2227.                  PKWare, Inc.
  2228.               -  PKZIP/PKUNZIP are copyright (c)1989 PkWare, Inc.
  2229.               -  SQZ is copyright (c)1992 J I Hammarberg.
  2230.               -  ZOO is copyright (c)1988 Rahul Dhesi
  2231.               -  FrontDoor is copyright (c)1988,89 Scandinavian PC Systems
  2232.                  and InterZone Software, Inc.
  2233.               -  DIRFIX is copyright (c)1990 Gary W. Funk.
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.           Appendix D. My Lawyer Made Me Do It                       Page 35
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.                                      Appendix E
  2280.  
  2281.                                    Version History
  2282.  
  2283.  
  2284.           Version 6.6 Changes
  2285.           ===================
  2286.  
  2287.               -  Added CRC verification of program files.
  2288.               -  Improved the SFX support.
  2289.               -  Now, by default, only error messages are sent to the log
  2290.                  file.  The new /L switch turns on the long form log file
  2291.                  with the conversion summaries.
  2292.               -  Made a few minor changes to the screen to improve the
  2293.                  readability of error messages.
  2294.               -  The date and time stamps placed in the log file now use
  2295.                  the format as defined by the country code.
  2296.  
  2297.           Version 6.5 Changes
  2298.           ===================
  2299.  
  2300.               -  Further enhancements to the SFX routines.  Added the
  2301.                  NONSFX= and NESTEDSFX= configuration file commands.
  2302.               -  Added the WORKDRIVE= configuration file command.
  2303.               -  Added the NESTED= configuration file command.
  2304.  
  2305.           Version 6.4 Changes
  2306.           ===================
  2307.  
  2308.               -  Added routines to detect and process self-extracting
  2309.                  archives (SFX).
  2310.               -  Changed the /X switch to /M, /X is now used to enable SFX
  2311.                  support.
  2312.  
  2313.           Version 6.3 Changes
  2314.           ===================
  2315.  
  2316.               -  Added the /O option (different from the older date related
  2317.                  switch).
  2318.  
  2319.           Version 6.2 Changes
  2320.           ===================
  2321.  
  2322.               -  The log file must now be specified in the environment.
  2323.                  This allows ZZAP to log errors before the configuration
  2324.                  file is read.
  2325.               -  Can now read a file containing a list of files to convert.
  2326.               -  Corrected an error in initialization that caused the /C+
  2327.                  switch to be ignored in some cases.
  2328.  
  2329.  
  2330.  
  2331.  
  2332.  
  2333.           Page 36                               Appendix E. Version History
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.           Version 6.1 Changes
  2341.           ===================
  2342.  
  2343.               -  Added the /B command line switch and support for
  2344.                  subdirectory information in archives.
  2345.               -  Slightly changed the way temporary files are handled to
  2346.                  improve support on networked multi-line BBS's.
  2347.  
  2348.           Version 6.0 Changes
  2349.           ===================
  2350.  
  2351.               -  Added the PRE=, MID=, and POST= configuration file
  2352.                  commands.
  2353.               -  Added support for %COMSPEC% when declaring programs to
  2354.                  execute.
  2355.               -  Added support for >> type output redirection.
  2356.               -  Changed /T to /D.
  2357.               -  A new test mode has been added.  Using /T now initiates a
  2358.                  test mode, no new archives are created.
  2359.               -  The date/time stamp is left unaltered when using the /T
  2360.                  command unless a /D option is explicitly stated.
  2361.               -  Instead of searching the path for all of the UNARC
  2362.                  programs at start-up, which can be a slow process if more
  2363.                  than a few are defined, ZZAP now only searches for the
  2364.                  programs when actually required.  The full path, if found,
  2365.                  is saved so that subsequent searches are not required.
  2366.  
  2367.           Version 5.9 Changes
  2368.           ===================
  2369.  
  2370.               -  Changed the way temporary files are handled, ZZAP can now
  2371.                  work with archive programs that insist on using a specific
  2372.                  extension.
  2373.                  Duplicate archives are not deleted until the new archive
  2374.                  has been successfully created.
  2375.               -  Added a few new error messages in the log file.
  2376.               -  When I added input redirection capabilities I also
  2377.                  introduced a bug that would could cause the wrong files to
  2378.                  be closed when turning off redirection after an execute.
  2379.                  This is now fixed.
  2380.  
  2381.           Version 5.8 Changes
  2382.           ===================
  2383.  
  2384.               -  Removed the /O command line option and replaced it with
  2385.                  the more versatile /T option.
  2386.               -  Added the /I (ignore file age) command to the command line
  2387.                  switches.
  2388.               -  Added the AGE= command to the configuration file.  ZZAP
  2389.                  can now be configured to skip processing of files that are
  2390.                  more than a specified number of days old.
  2391.               -  Added an index to the documents
  2392.               -  ZZAP is now DesqView aware.
  2393.  
  2394.  
  2395.  
  2396.  
  2397.           Appendix E. Version History                               Page 37
  2398.  
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404.           Version 5.7 Changes
  2405.           ===================
  2406.  
  2407.               -  Added support for redirection of input for called
  2408.                  programs.  This will allow you to automatically add
  2409.                  archives comments when converting to some archive formats.
  2410.               -  Deleted the FIXOPT= configuration file command.  Now the
  2411.                  FIXER= command does double duty - defining the program
  2412.                  name and options.
  2413.  
  2414.           Version 5.6 Changes
  2415.           ===================
  2416.  
  2417.               -  Corrected a bug where a bad archive could not be
  2418.                  successfully moved to a "bad directory" as defined by the
  2419.                  BADDIR= configuration option.
  2420.               -  If an archive contains subdirectory information and you
  2421.                  have the unarc option set to create subdirectories, ZZAP
  2422.                  will now handle this in a graceful manner by deleting the
  2423.                  subdirectories that were created, treating the archive as
  2424.                  bad, and logging an appropriate message.  Formerly, ZZAP
  2425.                  would crash when it was unable to remove its temporary
  2426.                  work subdirectory.
  2427.               -  When an archive nested inside another archive is found to
  2428.                  be corrupt, only the parent archive (containing the
  2429.                  corrupt child archive) will be moved to BADDIR instead of
  2430.                  both the parent and child archives.
  2431.               -  Stamped a new bug where a nested archive would be stored
  2432.                  with its temporary name (*.Z!Z) as well as the old
  2433.                  extension, resulting in larger archives.
  2434.  
  2435.           Version 5.5 Changes
  2436.           ===================
  2437.  
  2438.               -  Due to a bug in my code the error code returned by
  2439.                  SCAN.EXE was not being processed correctly.  This could
  2440.                  allow archives with infected programs to slip by.
  2441.               -  Cleaned up the display of error and warning messages.
  2442.               -  The log file is now only date/time stamped if something is
  2443.                  actually done.
  2444.               -  The number of files skipped due to the /P+ option is now
  2445.                  displayed with other status information.
  2446.  
  2447.           Version 5.4 Changes
  2448.           ===================
  2449.  
  2450.               -  Added the /C command line option.
  2451.               -  Added the FIXER=, FIXOPT= and SCANOPT= configuration file
  2452.                  commands.
  2453.               -  Corrupted archives are renamed to have a "!" as the second
  2454.                  character of the extension instead of "BAD" being the
  2455.                  extension.
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.           Page 38                               Appendix E. Version History
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.           Version 5.3 Changes
  2469.           ===================
  2470.  
  2471.               -  Added support for "%1" to allow the archive file names to
  2472.                  be in any position on the command line.
  2473.               -  Corrected a bug where the /N command line switch was being
  2474.                  ignored.
  2475.               -  Bug corrected where the state of Keep (/K+) and/or
  2476.                  PreventOverwrite (/P+) could be lost if more than one file
  2477.                  is given on the command line.
  2478.               -  On the switch status line, "on" is displayed in high-
  2479.                  intensity.
  2480.               -  Completely changed the way the /F option works and added
  2481.                  the QFIX program.
  2482.               -  Conversion of all archive types by indicating the wild-
  2483.                  card extension (e.g. '*.*' was not working, corrected as
  2484.                  of 5.3b.
  2485.  
  2486.           Version 5.2 Changes
  2487.           ===================
  2488.  
  2489.               -  Fixed a bug where the stack would overflow and trash some
  2490.                  internal data.
  2491.               -  Fixed a bug where if /X- was used it wouldn't properly
  2492.                  execute the external programs.
  2493.               -  Removed the ZZAPARC= environmental variable, it is not
  2494.                  longer needed with the addition of the /E command line
  2495.                  switch.
  2496.               -  Added the /N switch (convert nested archives).  Default
  2497.                  ON.
  2498.  
  2499.           Version 5.1 Changes
  2500.           ===================
  2501.  
  2502.               -  Added the SWITCH= configuration file option.
  2503.               -  Changed the way command line options are used.
  2504.  
  2505.           Version 5.0 Changes
  2506.           ===================
  2507.  
  2508.               -  Completely rewrote most of the file searching routines.
  2509.               -  Now supports repacking any archive type, e.g. ZIP to ZIP.
  2510.               -  Added a switch to prevent overwriting of existing
  2511.                  archives.
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.           Appendix E. Version History                               Page 39
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531.  
  2532.           Version 4.8 Changes
  2533.           ===================
  2534.  
  2535.               -  Added support for output redirection.
  2536.               -  ZZAP always thought the bad archive directory (BADDIR=)
  2537.                  didn't exist - whether it did or not.
  2538.               -  Now supports moving a BAD archive to a different drive.
  2539.               -  If BADDIR is defined and the subdirectory exists the file
  2540.                  will be moved their and the extension will NOT be changed
  2541.                  to .BAD.  The extension will be changed to .BAD if BADDIR
  2542.                  is not defined or does not exist.
  2543.  
  2544.           Version 4.7 Changes
  2545.           ===================
  2546.  
  2547.               -  Added the DEFAULT= command in the configuration file.
  2548.               -  Changed the ZZAPARC environmental variable so that it only
  2549.                  requires the file extension.
  2550.               -  Changed the ARC= command in the configuration file so that
  2551.                  multiple archiving programs can be listed.
  2552.               -  Added the /S (strip attributes) command line option.
  2553.               -  Added support for extended memory during archive program
  2554.                  executing.
  2555.               -  The BBS list routine was not working properly if the
  2556.                  filenames in the list file were not upper-case.
  2557.  
  2558.           Version 4.6 Changes
  2559.           ===================
  2560.  
  2561.               -  Added support for virus scanning using McAfee Associates
  2562.                  SCAN.EXE program.
  2563.               -  Added the BADDIR configuration option.
  2564.               -  Improved the error detection code.
  2565.  
  2566.           Version 4.5 Changes
  2567.           ===================
  2568.  
  2569.               -  Added support for multiple file names on the command line.
  2570.               -  Removed bug where ZZAP returned an error message if no
  2571.                  file name was given on the command line.
  2572.  
  2573.           Version 4.4 Changes
  2574.           ===================
  2575.  
  2576.               -  ZZAP wasn't properly reading the exit code of the unarcing
  2577.                  programs.  This resulting in some bad archives slipping
  2578.                  by.
  2579.  
  2580.           Version 4.3 Changes
  2581.           ===================
  2582.  
  2583.               -  Cosmetic changes and code optimization.
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.           Page 40                               Appendix E. Version History
  2590.  
  2591.  
  2592.  
  2593.  
  2594.  
  2595.  
  2596.           Version 4.2 Changes
  2597.           ===================
  2598.  
  2599.               -  Trivial B.S. hardly worth mentioning.
  2600.  
  2601.           Version 4.1 Changes
  2602.           ===================
  2603.  
  2604.               -  Corrected a fatal bug introduced in 4.0 that would cause
  2605.                  ZZAP to lose files under PKARC/PKPAK.
  2606.               -  Removed a bug which resulted in the "home" path (DOS 3.x
  2607.                  only) not being located properly.
  2608.  
  2609.           Version 4.0 Changes
  2610.           ===================
  2611.  
  2612.               -  Changed the "/I" option to "/A" - makes more sense.
  2613.                  Log more information about nonstandard file attributes in
  2614.                  the log file.
  2615.               -  Now supports expanded memory (LIM 4.0 only) when shelling,
  2616.                  thus making available more conventional memory when
  2617.                  running the archiving programs.
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.  
  2652.  
  2653.           Appendix E. Version History                               Page 41
  2654.  
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.                                         Index
  2664.  
  2665.  
  2666.           A                                  F
  2667.           AGE= 20                            File date stamping 10, 17
  2668.           Archive Programs Supported 4       Filter 20
  2669.           Attributes 17                      Fix-up program 10
  2670.             Flag funny 17, 23
  2671.             Strip 17, 18, 22                 H
  2672.                                              Halting ZZAP 3
  2673.           B
  2674.           BBS download list 10               I
  2675.                                              I/O redirection 17
  2676.           C
  2677.           Command Line Options 17            K
  2678.           Command line options               Keep 17, 21
  2679.             /A 17
  2680.             /B 17, 18                        L
  2681.             /C 17, 19                        License Agreement 1
  2682.             /D 10, 17, 19                    List 17, 20
  2683.             /E 17, 19                        Locating The Configuration
  2684.             /F 17, 19, 20                      File 25
  2685.             /I 10, 17, 20                    Log 15
  2686.             /K 17, 21                        Logging ZZAP Activity 15
  2687.             /L 17, 21                        Long Log File 17
  2688.             /M 17, 21
  2689.             /N 17, 21                        N
  2690.             /O 17, 21                        Nested Archives 17, 28
  2691.             /P 17, 22
  2692.             /R 17, 22                        O
  2693.             /S 17, 22                        Original Format 17
  2694.             /T 17, 23
  2695.             /V 17, 23                        P
  2696.             /X 17, 23                        Path 25
  2697.             /Y 24                            POST= 12
  2698.             /Z 17, 24                        PRE= 12
  2699.           Configuration File 5               Prevent overwrite 17
  2700.           Configuration File 25
  2701.                                              Q
  2702.           D                                  QuickBBS 10
  2703.           Default Extension 7, 17, 19
  2704.           Description fix-up 17, 19          R
  2705.           DIRFIX 20                          Redirection 5, 6, 7
  2706.                                              Redirection error 6
  2707.           E                                  Repack 26
  2708.           Environment 25                     Running ZZAP 3, 26
  2709.           Escape 3
  2710.           Executing Compsec 16               S
  2711.           Expanded Memory 17, 21             SCANV 14, 17, 23
  2712.           Extended Memory 17, 21             Self-extracting archives 17,
  2713.           External Event Conversion 31         23
  2714.  
  2715.  
  2716.  
  2717.           Page 42                                                     Index
  2718.  
  2719.  
  2720.  
  2721.  
  2722.  
  2723.  
  2724.           SFX 17, 23                         V
  2725.           Subdirecties 17, 18                Viruses 14, 17, 23
  2726.           Subdirectories 7
  2727.           Subdirectory recursion 17          W
  2728.           Summary of Features 2              When Good Files Go Bad 29
  2729.           Switches 9, 17                     Wild-cards 26
  2730.  
  2731.           T                                  Z
  2732.           Temporary subdirectory 11          ZZAPLOG= 15
  2733.           Test mode 17, 19, 20, 22, 23
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.  
  2780.  
  2781.           Index                                                     Page 43
  2782.  
  2783.  
  2784.  
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.                                     Contents
  2792.  
  2793.  
  2794.  
  2795.                Chapter 1  License Agreement                          1
  2796.  
  2797.                Chapter 2  Summary of Features                        2
  2798.  
  2799.                Chapter 3  Running ZZAP                               3
  2800.  
  2801.                Chapter 4  Archive Programs Supported                 4
  2802.  
  2803.                Chapter 5  Configuration File                         5
  2804.                   5.1  ARC=  . . . . . . . . . . . . . . . . . . . . 5
  2805.                   5.2  UNARC=  . . . . . . . . . . . . . . . . . . . 6
  2806.                   5.3  DEFAULT=  . . . . . . . . . . . . . . . . . . 7
  2807.                   5.4  NESTED= . . . . . . . . . . . . . . . . . . . 8
  2808.                   5.5  WORKDRIVE=  . . . . . . . . . . . . . . . . . 8
  2809.                   5.6  NESTEDARC=  . . . . . . . . . . . . . . . . . 8
  2810.                   5.7  BADDIR= . . . . . . . . . . . . . . . . . . . 9
  2811.                   5.8  VIRUSDIR= . . . . . . . . . . . . . . . . . . 9
  2812.                   5.9  SWITCH= . . . . . . . . . . . . . . . . . . . 9
  2813.                   5.10  FIXER= . . . . . . . . . . . . . . . . . .  10
  2814.                   5.11  AGE= . . . . . . . . . . . . . . . . . . .  10
  2815.                   5.12  PRE= . . . . . . . . . . . . . . . . . . .  10
  2816.                   5.13  MID= . . . . . . . . . . . . . . . . . . .  11
  2817.                   5.14  POST=  . . . . . . . . . . . . . . . . . .  12
  2818.                   5.15  SFX= . . . . . . . . . . . . . . . . . . .  12
  2819.                   5.16  NONSFX=  . . . . . . . . . . . . . . . . .  13
  2820.                   5.17  NESTEDSFX= . . . . . . . . . . . . . . . .  13
  2821.                   5.18  SCANOPT= . . . . . . . . . . . . . . . . .  14
  2822.                   5.19  WORKDRV= . . . . . . . . . . . . . . . . .  14
  2823.  
  2824.                Chapter 6  Logging ZZAP Activity                     15
  2825.  
  2826.                Chapter 7  Executing Compsec                         16
  2827.  
  2828.                Chapter 8  Command Line Options                      17
  2829.                   8.1  Flag Odd Attributes - /A  . . . . . . . . .  17
  2830.                   8.2  Allow subdirectories - B  . . . . . . . . .  18
  2831.                   8.3  Call Update Program - /C  . . . . . . . . .  19
  2832.                   8.4  File Date Stamping - /D . . . . . . . . . .  19
  2833.                   8.5  Target Extension - /E . . . . . . . . . . .  19
  2834.                   8.6  File List - /F  . . . . . . . . . . . . . .  20
  2835.                   8.7  Ignore File Age - /I  . . . . . . . . . . .  20
  2836.                   8.8  Keeping The Original - /K . . . . . . . . .  21
  2837.                   8.9  Long Log file - /L  . . . . . . . . . . . .  21
  2838.                   8.10  Expanded/Extended Memory - /M  . . . . . .  21
  2839.                   8.11  Convert Nested - /N  . . . . . . . . . . .  21
  2840.                   8.12  Keep Original Archive Format - /O  . . . .  22
  2841.                   8.13  Prevent Overwriting - /P . . . . . . . . .  22
  2842.  
  2843.  
  2844.  
  2845.                                           i
  2846.  
  2847.  
  2848.  
  2849.  
  2850.  
  2851.  
  2852.                   8.14  Subdirectory Recursion - /R  . . . . . . .  22
  2853.                   8.15  Strip Attributes - /S  . . . . . . . . . .  23
  2854.                   8.16  Test Only - /T . . . . . . . . . . . . . .  23
  2855.                   8.17  Virus Scan - /V  . . . . . . . . . . . . .  23
  2856.                   8.18  Self-extracting Archives - /X  . . . . . .  23
  2857.                   8.19  Enable/Disable CRC Verification - /Y . . .  24
  2858.                   8.20  Enable/Disable I/O Redirection - /Z  . . .  24
  2859.  
  2860.                Chapter 9  Locating The Configuration File           25
  2861.  
  2862.                Chapter 10  Running ZZAP                             26
  2863.  
  2864.                Chapter 11  Nested Archives                          28
  2865.  
  2866.                Chapter 12  When Good Files Go Bad                   29
  2867.  
  2868.                Chapter 13  External Event Conversion                31
  2869.  
  2870.                Appendix A  Sysop Recommendations                    32
  2871.  
  2872.                Appendix B  Exit Codes                               33
  2873.  
  2874.                Appendix C  Acknowledgments                          34
  2875.  
  2876.                Appendix D  My Lawyer Made Me Do It                  35
  2877.  
  2878.                Appendix E  Version History                          36
  2879.  
  2880.                Index                                                42
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.                                          ii
  2910.